A computer network is a collection of interconnected computing devices that exchange data and share resources. In a packet-based network, such as the Internet, the computing devices communicate data by establishing communication sessions and communicating data in the form of variable-length data blocks referred to as packets. The packets are individually routed across the network from a source device to a destination device. The destination device extracts the data from the packets and assembles the data into its original form.
Software applications that execute on the computing devices and use packet-based protocols to communicate over a packet-based computer network often exchange connectivity messages, such as “keepalive” or “hello” messages, on the communication session to confirm that the communication session is operating and/or to receive statistics relating to performance of the communication session, for example. For example, some applications leverage built-in keepalive support provided by Transmission Control Protocol (TCP) implementations to maintain transport-layer connectivity for TCP sessions between application endpoints. Failure to receive a keepalive or hello message for a communication session may indicate an occurrence of a network event, such as a link failure, session failure, component failure or other event that may cause loss of connectivity.